

//接口模块
import $ from 'jquery';

class Interface {
    //这里类当中的每个方法
    /**
     * 获取遗漏数据
     * @param {string} issue [当前的期号] 
     */
    getOmit(issue) {
        //保留对this的引用
        let self = this;
        //这里我们是发送请求,我们看是什么请求,我们好进行下一步操作
        //如果是传统的话,我们自己要接收一个callback作为参数
        //如果成功就调用这个callback()函数,这样就会造成回调地狱
        //所以这里,我们使用Promise让回调链化
        //还有,你要知道的是箭头函数是没有this的
        //箭头函数的this指向,是在他定义的时候,而不是运行的时候
        return new Promise((resolve, reject) => {
            //这里我们使用jquery的ajax方法发送通信
            $.ajax({
                url: '/get/omit',
                data: {
                    issue: issue
                },
                dataType: 'json',
                success: function (res) {
                    //将数据保存到这个对象(实例)当中去
                    //在对象其他方法当中调用数据,达到数据的传递
                    self.setOmit(res.data);

                    //这个resolve我还是第一次见到可以这么使用的
                    //这么使用解决了什么问题呢?
                    //将获取的数据传入resolve当中去
                    resolve.call(self, res);
                    
                },
                error: function (error) {
                    reject.call(self, error);
                }
            })


        });
    }
    /**
     * [获取开奖号码]
     * @param {string} issue [期号]
     */
    getOpenCode(issue) {
        let self = this;

        return new Promise((resolve, reject) => {
            $.ajax({
                url: '/get/opencode',
                data: {
                    issue
                },
                dataType: 'json',
                success: function (res) {
                    self.setOpenCode(res.data);
                    resolve.call(self, res);
                },
                error: function (error) {
                    reject.call(self, error);
                }
            });
        });
    }

    /**
     * 获取当前状态
     * @param {string} issue [当前期号] 
     */
    getState(issue) {
        let self = this;

        return new Promise((resolve, reject) => {
            $.ajax({
                url: '/get/state',
                data: {
                    issue
                },
                dataType: 'json',
                success: function (res) {
                    self.setOpenCode(res.data);
                    resolve.call(self, res);
                },
                error: function (error) {
                    reject.call(self, error);
                }
            });
        });
    }

}

//导出当前的接口
export default Interface;












